//============================================================================================
/**
 * @file	pkthln_comm_pack.h
 * @brief	ポケスロン通信パッケージ
 * @author	Nozomu Saito
 */
//============================================================================================

#ifndef __PKTHLN_COMM_PACK_H__
#define __PKTHLN_COMM_PACK_H__

#include "communication/communication.h"

#include "pkthln_event/pkthln_event_comm_common.h"

//-----------------------------------------------------------------------------
/**
 *					定数宣言
*/
//-----------------------------------------------------------------------------
//-------------------------------------
//	通信パックフラグ
//=====================================
#define PKTHLN_COMM_PACK_ONE	( 0 )	// 一人用
#define PKTHLN_COMM_PACK_COMM	( 1 )	// 通信

//-------------------------------------
//	ダミーコールバックワーク数
//=====================================
#define PKTHLN_COMM_PACK_DUMMY_WORK_NUM	( 8 )

//-------------------------------------
//	ダミーコールバック　システムTCB
//	VWAITタスク優先順位
//=====================================
//出来るだけ、VWAITの一番最後にしたい
#define PKTHLN_COMM_PACK_DUMMY_TCB_PRI	( 5000 )

//-------------------------------------
//	ダミーコールバックのときの
//	接続ID（ダミー）
//=====================================
#define PKTHLN_COMM_PACK_DUMMY_NETID	( COMM_PARENT_ID )




//-----------------------------------------------------------------------------
/**
 *					構造体宣言
*/
//-----------------------------------------------------------------------------
// パックシステムワーク
typedef struct PKTHLN_COMMPACK_WORK_tag * COMMPACK_PTR;

//-----------------------------------------------------------------------------
/**
 *					プロトタイプ宣言
*/
//-----------------------------------------------------------------------------
extern COMMPACK_PTR PKTHLN_CommPack_CommandInitialize(
							const CommPacketTbl* pCommPacketLocal,
							const int inListNum, void *pWork, const int inCommFlg, const int inHeapID );
extern void PKTHLN_CommPack_CommandChange( COMMPACK_PTR pack_ptr,
							const CommPacketTbl* pCommPacketLocal,
							const int inListNum, void *pWork);
extern void PKTHLN_CommPack_SetSizeBind( COMMPACK_PTR pack_ptr, const u8 inFlg );
extern BOOL PKTHLN_CommPack_CommSendData( const int inCommand, const void *data,
											const int inSize, COMMPACK_PTR pack_ptr  );
extern BOOL PKTHLN_CommPack_CommSendHugeData( const int inCommand, const void *data,
											const int inSize, COMMPACK_PTR pack_ptr  );
extern void PKTHLN_CommPack_CommDelete( COMMPACK_PTR pack_ptr  );

extern int PKTHLN_CommPack_CommGetCurrentID( COMMPACK_PTR pack_ptr );
/**
extern void *PKTHLN_CommPack_GetChildData(PTHLN_COMM_DATA *pData);
extern void *PKTHLN_CommPack_GetParentData(PTHLN_COMM_DATA *pData);
*/
extern void *PKTHLN_CommPack_GetData(PTHLN_COMM_DATA *pData);
#endif		// __PKTHLN_COMM_PACK_H__
